// utils/http.js
const baseURL = 'http://localhost:8088/api'; // 你的 API 基础地址

export const request = (options) => {
  return new Promise((resolve, reject) => {
    // 处理 GET或POST 请求的 params（拼接成 query string）
    let url = baseURL + options.url;
    if (options.method?.toUpperCase() === 'GET' || options.method?.toUpperCase() === 'POST' && options.params) {
      const params = options.params;
		  
	  if (params) {
		  const queryString = Object.keys(params)
		    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
		    .join('&');
		  url += (url.includes('?') ? '&' : '?') + queryString;
	  }
      
    }

    uni.request({
      url: url,
      method: options.method || 'GET',
      data: options.data || undefined, // POST/PUT/PATCH 等请求的 body 数据
      header: {
		'Access-Control-Allow-Origin': '*',
        'Content-Type': options.contentType || 'application/json', // 允许自定义 Content-Type
        'Authorization': uni.getStorageSync('token') || '', // 从缓存读取 token
        ...options.headers, // 允许自定义 headers
      },
      timeout: options.timeout || 10000, // 默认 10 秒超时
      success: (res) => {
        // 响应拦截（可以根据业务需求调整）
        if (res.statusCode === 200) {
          resolve(res.data); // 成功返回数据
        } else {
          reject(res.data || `请求失败，状态码：${res.statusCode}`); // 非 200 状态码
        }
      },
      fail: (err) => {
        reject(err.errMsg || '网络请求失败'); // 失败处理
      }
    });
  });
};